Proposed systems for providing digital audio broadcasting (DAB) in the FM radio band are expected to provide near compact disk (CD)-quality audio, data services and more robust coverage than existing analog FM transmissions. Digital audio broadcasting systems compress an audio signal using a digital audio encoder, such as a perceptual audio coder (PAC). Perceptual audio coders reduce the amount of information needed to represent an audio signal by exploiting human perception and minimizing the perceived distortion for a given bit rate. Perceptual audio coders are described, for example, in D. Sinha et al., “The Perceptual Audio Coder,” Digital Audio, Section 42, 42-1 to 42-18, (CRC Press, 1998), incorporated by reference herein
Digital radio will be offered in a single channel and multiple channel form. The single channel form will use the existing infrastructure of FM broadcasting. Each digital audio channel is broadcast in the bandwidth allocated to one FM channel. Until such time as a transition to an all-digital DAB system can be achieved, many broadcasters require an intermediate solution in which the analog and digital signals can be transmitted simultaneously within the same licensed band. Such systems are typically referred to as hybrid in-band on-channel (HIBOC) DAB systems, and are being developed for both the FM and AM radio bands.
FIG. 1 illustrates a conventional DAB communication system 100. As shown in FIG. 1, the DAB communication system 100 employs a radio transmission link 130 that is typically of a fixed bit rate. The bit rate of the audio encoder 110 on the other hand is typically variable, depending on the complexity of the current audio signal and the audio quality requirements. On average, the bit rate of the audio encoder 110 is equal to or less than the capacity of the transmission link 130, but at any given instance the bit rate of the audio coder 110 may be higher. If data from the audio encoder 110 was applied directly to the transmission link 130, data would be lost each time the instantaneous bit rate of the encoder 110 exceeded the capacity of the transmission link 130. In order to prevent such a loss of data, the output of the encoder 110 is buffered into a first-in-first-out (FIFO) buffer 120 before being applied to the transmission link 130. If the instantaneous bit rate of the encoder 110 is higher than the bit rate of the transmission link, the amount of data in the FIFO buffer 120 increases. Similarly, if the instantaneous bit rate of the encoder 110 is lower than the bit rate of the transmission link 130, the amount of data in the FIFO buffer 120 decreases. The encoder 110 (or encoder bank) typically contains a control loop that modifies the bit rate of the encoder 110 and prevents the encoder 110 from overflowing or underflowing the FIFO buffer 120. Overflow causes a loss of bits, while an underflow wastes some of the capacity the transmission link 130.
As a result of this scheme, the transmission delay is also variable. The delay between the time when an audio packet is first written into the FIFO buffer 120 and the time when the packet is actually received by the receiver 150 depends, among other factors, on the amount of data that is currently stored in the FIFO buffer 120. However, the audio decoder 170 at the receiver 150 needs to get audio packets at a fixed rate (of packets per second) in order to play continuously. Therefore, it is necessary to buffer the audio data at the decoder 170 as well as using a buffer 160. When the receiver 150 is first powered up or is tuned to a new channel, the decoder 170 begins to play only after a certain initialization period, during which time packets are received and stored in the decoder-input buffer 160. After the decoder 170 begins playing, the decoder 170 consumes packets from the input buffer 160 at a fixed rate, while at the same time new packets arrive and are stored in the same buffer 160. The decoder input-buffer 160 has to have enough capacity so that even in the worst case of minimal delay and largest packet size, the buffer 160 will not overflow. In addition, the initialization period has to be sufficiently long to accumulate enough packets in the buffer 160 so that the buffer does not become empty due to transmission delays.
If the number of data bits in the encoder buffer 120 gets higher than the size of the decoder buffer 160, an overflow condition occurs since the frame at which this condition occurs will not arrive in time at the decoder 170 to be decoded. It is difficult to design a perceptually good bit-allocation scheme for an audio encoder 110 that guarantees that the number of data bits in the encoder buffer 120 stays within a specified range. Typically, high bursts of quantization noise are added to prevent the danger of buffer overflow. The perceptual effect of this is referred to as bit-starvation and frequently leads to a severely distorted audio signal. Nonetheless, if there is a danger that the buffer will overflow, then the audio encoder 110 typically introduces high noise bursts into the audio signal in order to use less bits for encoding. In the extreme case where a buffer overflow cannot be prevented, bits are wasted for a frame that is known to not arrive in time at the decoder.
A need therefore exists for an improved buffer control technique that does not waste bits when it is known that a frame will not arrive in time to be processed by the decoder. A further need exists for an improved buffer control technique that allows a decoder to employ mitigation techniques to minimize the impact of one or more dropped frames.